Conversation
|
Cursor Agent can help with this pull request. Just |
Add three new CI jobs to test platform compatibility: - test-linux-arm: Tests on ubuntu-24.04-arm (ARM64 Linux) - test-macos-intel: Tests on macos-15-intel (x86 macOS) - test-no-simd: Tests on ubuntu-latest with SIMD disabled via BLST_PORTABLE=1 and RUSTFLAGS target-cpu=x86-64, simulating an Ubuntu Docker container running on macOS ARM via QEMU emulation Each job builds and runs tests with both default and all features. Co-authored-by: Greg Nazario <greg@gnazar.io>
29bd9e0 to
91b1ad2
Compare
There was a problem hiding this comment.
Pull request overview
Expands CI platform coverage by adding additional test jobs targeting ARM Linux, Intel macOS, and a “no SIMD” configuration to better validate aptos-sdk behavior across diverse execution environments.
Changes:
- Add a Linux ARM64 CI job to build and test
aptos-sdk. - Add an Intel macOS CI job to build and test
aptos-sdk. - Add a “Linux No SIMD” job using
BLST_PORTABLE=1and baselineRUSTFLAGSto test a portability-oriented configuration.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| test-no-simd: | ||
| name: Test (Linux No SIMD - Docker Compatible) | ||
| runs-on: ubuntu-latest | ||
| env: | ||
| # Disable BLST assembly optimizations for portability | ||
| BLST_PORTABLE: "1" | ||
| # Target baseline x86-64 without AVX/AVX2 SIMD extensions. | ||
| # This simulates running in a Docker container on macOS ARM via | ||
| # QEMU x86 emulation, where advanced SIMD instructions are unavailable. | ||
| RUSTFLAGS: "-C target-cpu=x86-64" |
There was a problem hiding this comment.
The test-no-simd job description/comments (and the PR description) describe testing an Ubuntu Docker container running on macOS ARM under QEMU x86 emulation, but the workflow runs directly on ubuntu-latest (no Docker/QEMU involved). If the intention is only to simulate “no advanced SIMD” via BLST_PORTABLE/RUSTFLAGS, please adjust the job name/comments/PR description to reflect that; otherwise, update the job to actually exercise the Docker+QEMU path on an ARM runner.
| test-linux-arm: | ||
| name: Test (Linux ARM64) | ||
| runs-on: ubuntu-24.04-arm | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
|
|
There was a problem hiding this comment.
test-linux-arm duplicates the same checkout/toolchain/cache/build/test steps already defined in the existing test job. This increases maintenance overhead (every future change to the test steps must be replicated across multiple jobs). Consider extending the existing test matrix (e.g., with include) to cover the ARM runner instead of defining a separate job, unless there’s a runner-specific deviation you need here.
| test-macos-intel: | ||
| name: Test (macOS x86) | ||
| runs-on: macos-15-intel | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
|
|
There was a problem hiding this comment.
test-macos-intel repeats the same steps as the main test job. To reduce duplication and keep CI maintenance simpler, consider adding this runner to the existing test matrix (with an include entry for macos-15-intel) rather than maintaining a separate job with near-identical steps.
Add CI jobs for Linux ARM, macOS x86, and Linux with SIMD disabled to expand platform test coverage.
The 'Linux No SIMD' job (
test-no-simd) specifically targets a scenario where an Ubuntu Docker container runs on a macOS ARM machine using QEMU x86 emulation. In this setup, advanced SIMD instructions are unavailable. By settingBLST_PORTABLE=1andRUSTFLAGS="-C target-cpu=x86-64", this job ensures compatibility for users in such environments by testing the codebase without relying on SIMD optimizations.